const { Article } = require('../../models/article')
// 导入分页模块
const pagination = require('mongoose-sex-page');
module.exports = async (req, res) => {
    // 保存页码
    let page = req.query.page || 1;
    req.app.locals.currentLink = 'acticle';
    // 查询所有文章数据, populate联查
    // lean()方法：是告诉mongoose返回的是普通对象，而不是mongoose文档对象，方法内部先用JSON.stringify()这个方法将文档对象转换为字符串，将其他的属性格式全部去掉，然后只留下需要的数据字符串~
    // 因为mongoose文档对象会导致模板渲染失败
    // const articles = await Article.find().populate('author').lean();

    // pagination(model指定查询数据库的模型).page(当前页码).size(每页显示多少条数据).display(页码显示几页).exec()
    // page()指定当前页
    // size()指定每页显示多少条数据
    // display()指定页码显示几页
    // exec()执行
    let articles = await pagination(Article).find().page(page).size(10).display(3).populate('author').exec();
    /**
     * 使用mongoose-sex-page分页时，可能和mongodb版本的原因，导致报错
     * this.model.where(...).count is not a function
     * 报错提示指向 node_modules\mongoose-sex-page\lib\pagnation.js:154
     * 所以去到该文件中，将count()换成countDocuments()方法即可
    */
   
    // 序列化
    articles = JSON.parse(JSON.stringify(articles));
    // 返回数据
    res.render('admin/article', {
        articles,
        currentPage: page,
    })
}